package gamecomponents.navigation;
import gamecomponents.levelcomponents.stagelements.Block;
import gamecomponents.skeletontesthelper.Assistant;
import gamecomponents.skeletontesthelper.Interaction;
import gamecomponents.skeletontesthelper.Parameter;

/**
 * @author Akos
 * @version 1.0
 * @created 14-márc.-2012 16:36:08
 */
public class Location {

	private Block block;
	private Coordinate coord;

	public Location(){
            Parameter param[] = new Parameter[1];
            param[0] = new Parameter(null);
            Assistant.write(Interaction.CRT,this,"Location",param);
	}

	public void finalize() throws Throwable {

	}

	/**
	 * 
	 * @param _coord
	 * @param _block
	 */

	public Location(Coordinate _coord, Block _block){
            Parameter param[] = new Parameter[2];
            param[0] = new Parameter(_coord);
            param[1] = new Parameter(_block);
            Assistant.write(Interaction.CRT,this,"Location",param);
            coord = _coord;
            block = _block;
	}

	public Block getBlock(){
            Parameter param[]=new Parameter[1];
            param[0]=new Parameter(null);
            Assistant.write(Interaction.CALL,this,"getBlock",param);
            
            Parameter parameter[]=new Parameter[1];
            parameter[0]=new Parameter(block);
            Assistant.write(Interaction.RET,this,"getBlock",parameter);
		return block;     //visszatér a block tagváltozó értékével
	}

	public Coordinate getCoordinate(){
            Parameter param[]=new Parameter[1];
            param[0]=new Parameter(null);
            Assistant.write(Interaction.CALL,this,"getCoordinate",param);
            
            Parameter parameter[]=new Parameter[1];
            parameter[0]=new Parameter(coord);
            Assistant.write(Interaction.RET,this,"getCoordinate",parameter);
		return coord;    //visszatér a coord tagváltozó értékével
	}

	/**
	 * 
	 * @param block
	 */
	public void setBlock(Block block){
            Parameter param[]=new Parameter[1];     //beállítja a block tagváltozót
            param[0]=new Parameter(block);
            Assistant.write(Interaction.CALL,this,"setBlock",param);
            
            Parameter parameter[]=new Parameter[1];
            parameter[0]=new Parameter(null);
            Assistant.write(Interaction.RET,this,"setBlock",parameter);
            this.block = block;

	}

	/**
	 * 
	 * @param coord
	 */
	public void setCoordinate(Coordinate coord){
            Parameter param[]=new Parameter[1];     //beállítja a coord tagváltozót
            param[0]=new Parameter(coord);
            Assistant.write(Interaction.CALL,this,"getCoordinate",param);
            
            Parameter parameter[]=new Parameter[1];
            parameter[0]=new Parameter(null);
            Assistant.write(Interaction.RET,this,"getCoordinate",parameter);
            this.coord = coord;
	}

}